home *** CD-ROM | disk | FTP | other *** search
/ Cre@te Online 2000 December / Cre@teOnline CD05.iso / MacSoft / XML ConsoleMax.sea / XML ConsoleMax / Required / esc.jar / com / extensibility / xa / ElementTable.class (.txt) < prev    next >
Encoding:
Java Class File  |  2000-06-30  |  7.6 KB  |  195 lines

  1. package com.extensibility.xa;
  2.  
  3. import com.extensibility.app.BaseAction;
  4. import com.extensibility.app.UI;
  5. import com.extensibility.rock.RTable;
  6. import com.extensibility.rock.table.QlickerDataSource;
  7. import com.extensibility.xml.BaseDeclaration;
  8. import com.extensibility.xml.ElementDeclaration;
  9. import com.extensibility.xml.SchemaFlavorIntf;
  10. import java.awt.Dialog;
  11. import java.util.EventObject;
  12. import javax.swing.JComponent;
  13. import javax.swing.JFrame;
  14. import javax.swing.JTable;
  15. import javax.swing.KeyStroke;
  16. import javax.swing.SwingUtilities;
  17. import javax.swing.event.ListSelectionListener;
  18. import javax.swing.event.TableModelEvent;
  19. import javax.swing.table.TableCellEditor;
  20. import javax.swing.table.TableCellRenderer;
  21.  
  22. public final class ElementTable extends DeclTableExtra {
  23.    static final int COL_ELEMENT = 2;
  24.    static final int COL_SUPER = 3;
  25.    static final int COL_CM_TEXT = 4;
  26.    static final int COL_CM_TAGS = 5;
  27.    static final int COL_CM_SOURCE = 6;
  28.    static final int COL_ATTRS = 7;
  29.    static ElementHeader rendHdr = new ElementHeader();
  30.    static final int ALLOW_WIDTH = 50;
  31.    public BaseAction toggleTextAction = new 1(this, "toggle.text");
  32.    public BaseAction toggleTagsAction = new 2(this, "toggle.tags");
  33.    KeyStroke keyText;
  34.    KeyStroke keyTags;
  35.    String contentHeader;
  36.    ListSelectionListener selectionListener = new 3(this);
  37.  
  38.    public ElementTable(DeclModelExtra var1) {
  39.       super(var1);
  40.    }
  41.  
  42.    public TableCellRenderer createHeaderRenderer(int var1) {
  43.       return (TableCellRenderer)(var1 <= 2 ? super.createHeaderRenderer(var1) : rendHdr);
  44.    }
  45.  
  46.    public TableCellEditor createCellEditor(int var1) {
  47.       switch (var1) {
  48.          case 2:
  49.             return new NameQlicker((QlickerDataSource)((JTable)this).getModel());
  50.          case 3:
  51.             return new NameQlicker((QlickerDataSource)((JTable)this).getModel());
  52.          case 4:
  53.          case 5:
  54.          default:
  55.             return super.createCellEditor(var1);
  56.          case 6:
  57.             ContentModelQlicker var2 = new ContentModelQlicker(((DeclTable)this).getSchemaDoc(), new CMQDataSource(((DeclTable)this).getSchemaDoc()));
  58.             return var2;
  59.          case 7:
  60.             return new AttrListQlicker(((DeclTable)this).getSchemaDoc(), (QlickerDataSource)((JTable)this).getModel());
  61.       }
  62.    }
  63.  
  64.    public int getInitialColumnWidth(int var1) {
  65.       switch (var1) {
  66.          case 2:
  67.             return 100;
  68.          case 3:
  69.             return 80;
  70.          case 4:
  71.          case 5:
  72.             return 50;
  73.          case 6:
  74.          case 7:
  75.             return 150;
  76.          default:
  77.             return super.getInitialColumnWidth(var1);
  78.       }
  79.    }
  80.  
  81.    public double getColumnWeight(int var1) {
  82.       switch (var1) {
  83.          case 2:
  84.             return 0.1;
  85.          case 3:
  86.             return 0.1;
  87.          case 4:
  88.          case 5:
  89.          default:
  90.             return super.getColumnWeight(var1);
  91.          case 6:
  92.          case 7:
  93.             return 0.45;
  94.       }
  95.    }
  96.  
  97.    private void autoCreate(ElementDeclaration var1) {
  98.       SchemaFlavorIntf var2 = ((BaseDeclaration)var1).getSchema().getFlavor();
  99.       if (var2.getFlavorName().equals("osc")) {
  100.          boolean var3 = var1.getAllowsText();
  101.          boolean var4 = var1.getAllowsTags();
  102.          if (var3 && !var4) {
  103.             var1.setAllowsData(true);
  104.          } else if (var4 && !var3) {
  105.             var1.getContentModel().setMany();
  106.          }
  107.       }
  108.  
  109.    }
  110.  
  111.    public void updateHeaders() {
  112.       ElementDeclaration var1 = (ElementDeclaration)((DeclTable)this).getSelectedDecl();
  113.       if (var1 != null) {
  114.          String var2 = var1.isTextOnly() ? UI.getString("taglist.dt.header") : UI.getString("taglist.cm.header");
  115.          if (!var2.equals(this.contentHeader)) {
  116.             this.contentHeader = var2;
  117.             ((JTable)this).getColumnModel().getColumn(6).setHeaderValue(this.contentHeader);
  118.             ((JTable)this).getTableHeader().repaint();
  119.          }
  120.       }
  121.    }
  122.  
  123.    public void addNotify() {
  124.       super.addNotify();
  125.       ElementTableModel var1 = (ElementTableModel)((JTable)this).getModel();
  126.       this.keyText = KeyStroke.getKeyStroke(var1.getHeaderMnemonic(4), 8);
  127.       this.keyTags = KeyStroke.getKeyStroke(var1.getHeaderMnemonic(5), 8);
  128.       ((JComponent)this).registerKeyboardAction(this.toggleTextAction, this.keyText, 1);
  129.       ((JComponent)this).registerKeyboardAction(this.toggleTagsAction, this.keyTags, 1);
  130.       ((RTable)this).addListSelectionListener(this.selectionListener);
  131.    }
  132.  
  133.    public void tableChanged(TableModelEvent var1) {
  134.       super.tableChanged(var1);
  135.       switch (var1.getColumn()) {
  136.          case -1:
  137.          case 4:
  138.          case 5:
  139.             this.updateHeaders();
  140.          default:
  141.       }
  142.    }
  143.  
  144.    public void removeNotify() {
  145.       super.removeNotify();
  146.       ((JComponent)this).unregisterKeyboardAction(this.keyText);
  147.       ((JComponent)this).unregisterKeyboardAction(this.keyTags);
  148.       ((RTable)this).removeListSelectionListener(this.selectionListener);
  149.    }
  150.  
  151.    protected BaseDeclaration paste(BaseDeclaration var1, SchemaDoc var2, SchemaDoc var3) throws Exception {
  152.       ElementDeclaration var4 = (ElementDeclaration)super.paste(var1, var2, var3);
  153.       ElementDeclaration[] var5 = var2.getAllowedElements((ElementDeclaration)var1);
  154.  
  155.       for(int var6 = 0; var6 < var5.length; ++var6) {
  156.          if (var3.getNamedElement(var5[var6].getName()) == null) {
  157.             this.paste(var5[var6], var2, var3);
  158.          }
  159.       }
  160.  
  161.       return var4;
  162.    }
  163.  
  164.    public boolean hasCellDialog(int var1, int var2) {
  165.       if (((DeclTableExtra)this).isExtraCol(var2)) {
  166.          return super.hasCellDialog(var1, var2);
  167.       } else {
  168.          return var2 == 6 && ((ElementTableModel)((JTable)this).getModel()).getElement(var1) != null && ((ElementTableModel)((JTable)this).getModel()).getElement(var1).getAllowsTags() || var2 == 7;
  169.       }
  170.    }
  171.  
  172.    public boolean showCellDialog(int var1, int var2, EventObject var3) {
  173.       if (var2 == 6) {
  174.          ElementDeclaration var6 = ((ElementTableModel)((JTable)this).getModel()).getElement(var1);
  175.          ElemModelCellDialog var7 = new ElemModelCellDialog(this, (JFrame)SwingUtilities.getRoot(this), ((DeclTable)this).getSchemaDoc(), new ContentModelQlicker(((DeclTable)this).getSchemaDoc(), new CMQDataSource(((DeclTable)this).getSchemaDoc())), var6, ((ContentModelQlicker)((JTable)this).getCellEditor()).getText());
  176.          var7.setTableInfo(var1, var2);
  177.          ((Dialog)var7).show();
  178.          return true;
  179.       } else if (var2 == 7) {
  180.          ElementDeclaration var4 = ((ElementTableModel)((JTable)this).getModel()).getElement(var1);
  181.          ElemAttrListCellDialog var5 = new ElemAttrListCellDialog(this, (JFrame)SwingUtilities.getRoot(this), ((DeclTable)this).getSchemaDoc(), new AttrListQlicker(((DeclTable)this).getSchemaDoc(), (QlickerDataSource)((JTable)this).getModel()), var4, ((AttrListQlicker)((JTable)this).getCellEditor()).getText());
  182.          var5.setTableInfo(var1, var2);
  183.          ((Dialog)var5).show();
  184.          return true;
  185.       } else {
  186.          return ((DeclTableExtra)this).isExtraCol(var2) ? super.showCellDialog(var1, var2, var3) : false;
  187.       }
  188.    }
  189.  
  190.    // $FF: synthetic method
  191.    static void access$8000071(ElementTable var0, ElementDeclaration var1) {
  192.       var0.autoCreate(var1);
  193.    }
  194. }
  195.